﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
using QLTV_V2.DataAccess;
using QLTV_V2.BussinessObject;
using QLTV_V2.BussinessLogic;

namespace QLTV_V2
{
    public partial class FrmDanhMuc : DevComponents.DotNetBar.Office2007RibbonForm
    {
        public FrmDanhMuc()
        {
            InitializeComponent();
        }
        Utilities uti = new Utilities();
        ConnectData conn = new ConnectData();
        private int kt;
        public string manv;
        string getMa()
        {
            int dong = dgv_DanhMuc.CurrentRow.Index;
            return dgv_DanhMuc.Rows[dong].Cells[0].Value.ToString();
        }
        private void FrmDanhMuc_Load(object sender, EventArgs e)
        {

        }
        private void codeChucNang_NodeClick(object sender, EventArgs e)
        {
            MessageBox.Show("Không thể sử dụng chức năng này");
            //kt=1;
            //dataGridView_DanhMuc.DataSource = uti.getDataSource("ChucNang", "TenCN");
        }

        private void codeNhomBanDoc_NodeClick(object sender, EventArgs e)
        {
            kt = 2;
            dgv_DanhMuc.DataSource = uti.getDataSource("NhomBanDoc", "TenNhom");
        }

        private void codeNhanVien_NodeClick(object sender, EventArgs e)
        {
            kt = 3;
            dgv_DanhMuc.DataSource = uti.getDataSource("NhanVien", "TenNV");
        }

        private void nodeLoaiSach_NodeClick(object sender, EventArgs e)
        {
            kt = 4;
            dgv_DanhMuc.DataSource = uti.getDataSource("LoaiSach", "TenLoaiSach");
        }

        private void noceNhaXB_NodeClick(object sender, EventArgs e)
        {
            kt = 5;
            dgv_DanhMuc.DataSource = uti.getDataSource("NhaXuatBan", "TenNXB");
        }

        private void nodeTacGia_NodeClick(object sender, EventArgs e)
        {
            kt = 6;
            dgv_DanhMuc.DataSource = uti.getDataSource("TacGia", "TenTacGia");
        }

        private void nodeNgonNgu_NodeClick(object sender, EventArgs e)
        {
            kt = 7;
            dgv_DanhMuc.DataSource = uti.getDataSource("NgonNgu", "TenNgonNgu");
        }

        private void nodeViTri_NodeClick(object sender, EventArgs e)
        {
            kt = 8;
            dgv_DanhMuc.DataSource = uti.getDataSource("ViTri", "MaViTri");
        }

        private void nodeNhaCungcap_NodeClick(object sender, EventArgs e)
        {
            kt = 9;
            dgv_DanhMuc.DataSource = uti.getDataSource("NhaCungCap", "TenNCC");
        }

        private void btn_Them_Click(object sender, EventArgs e)
        {
            if (kt == 1)//Chuc năng
            {
                FrmChucNang frm = new FrmChucNang();
                frm.kt = 2;
                frm.ShowDialog();
                
            }
            if (kt == 2)//Nhom ban đọc
            {
                FrmNhomBanDoc frm = new FrmNhomBanDoc();
                frm.kt = 2;
                frm.ShowDialog();
                codeNhomBanDoc_NodeClick(sender, e);
            }
            if (kt == 3)//Nhan vien
            {
                string[] arrayString = conn.getArray("MaCN", "QuyenHan", "MaNV", manv, 1);
                int n = arrayString.Length;//Lấy số phần tử mảng
                if (uti.TimKiem(arrayString, n, "ribbonPanel_NSD") == true)
                {
                    FrmNhanVien frm = new FrmNhanVien();
                    frm.kt = 1;
                    frm.ShowDialog();
                    codeNhanVien_NodeClick(sender, e);
                }
                else
                    MessageBox.Show("Không có quyền sử dụng chức năng này!", "Thông báo");
            }
            if (kt == 4)//Loai Sach
            {
                FrmLoaiSach frm = new FrmLoaiSach();
                frm.kt = 2;
                frm.ShowDialog();
                nodeLoaiSach_NodeClick(sender, e);
            }
            if (kt == 5)//Nha xuat ban
            {
                FrmNhaXuatBan frm = new FrmNhaXuatBan();
                frm.kt = 2;
                frm.ShowDialog();
                noceNhaXB_NodeClick(sender, e);
            }
            if (kt == 6)//Tac gia
            {
                FrmTacGia frm = new FrmTacGia();
                frm.kt = 2;
                frm.ShowDialog();
                nodeTacGia_NodeClick(sender, e);
            }
            if (kt == 7)//Ngon ngu
            {
                FrmNgonNgu frm = new FrmNgonNgu();
                frm.kt = 2;
                frm.ShowDialog();
                nodeNgonNgu_NodeClick(sender, e);
            }
            if (kt == 8)//VI tri
            {
                FrmViTri frm = new FrmViTri();
                frm.kt = 2;
                frm.ShowDialog();
                nodeViTri_NodeClick(sender, e);
            }
            if (kt == 9)//Nha cung cap
            {
                FrmNhaCungCap frm = new FrmNhaCungCap();
                frm.kt = 2;
                frm.ShowDialog();
                nodeNhaCungcap_NodeClick(sender, e);
            }
        }

        private void btn_Sua_Click(object sender, EventArgs e)
        {
            if (kt == 1)//Chuc năng
            {
                FrmChucNang frm = new FrmChucNang();
                frm.kt = 1;
                frm.MaCN = getMa();
                frm.ShowDialog();
                codeChucNang_NodeClick(sender, e);
            }
            if (kt == 2)//Nhom ban đọc
            {
                FrmNhomBanDoc frm = new FrmNhomBanDoc();
                frm.kt = 1;
                frm.MaNhom = getMa();
                frm.ShowDialog();
                codeNhomBanDoc_NodeClick(sender,e);
            }
            if (kt == 3)//Nhan vien
            {
                 string[] arrayString = conn.getArray("MaCN", "QuyenHan", "MaNV", manv, 1);
                int n = arrayString.Length;//Lấy số phần tử mảng
                if (uti.TimKiem(arrayString, n, "ribbonPanel_NSD") == true)
                {
                    FrmNhanVien frm = new FrmNhanVien();
                    frm.MaNV = getMa();
                    frm.kt = 2;
                    frm.ShowDialog();
                    codeNhanVien_NodeClick(sender,e);
                }
                MessageBox.Show("Không có quyền sử dụng chức năng này", "Thông báo");
            }
            if (kt == 4)//Loai Sach
            {
                FrmLoaiSach frm = new FrmLoaiSach();
                frm.MaLoaiSach = getMa();
                frm.kt = 1;
                frm.ShowDialog();
                nodeLoaiSach_NodeClick(sender, e);
            }
            if (kt == 5)//Nha xuat ban
            {
                FrmNhaXuatBan frm = new FrmNhaXuatBan();
                frm.MaNXB = getMa();
                frm.kt = 1;
                frm.ShowDialog();
                noceNhaXB_NodeClick(sender, e);
            }
            if (kt == 6)//Tac gia
            {
                FrmTacGia frm = new FrmTacGia();
                frm.MaTacGia = getMa();
                frm.kt = 1;
                frm.ShowDialog();
                nodeTacGia_NodeClick(sender, e);
            }
            if (kt == 7)//Ngon ngu
            {
                FrmNgonNgu frm = new FrmNgonNgu();
                frm.MaNN = getMa();
                frm.kt = 1;
                frm.ShowDialog();
                nodeNgonNgu_NodeClick(sender, e);
            }
            if (kt == 8)//VI tri
            {
                FrmViTri frm = new FrmViTri();
                frm.MaViTri = getMa();
                frm.kt = 1;
                frm.ShowDialog();
                nodeViTri_NodeClick(sender, e);
            }
            if (kt == 9)//Nha cung cap
            {
                FrmNhaCungCap frm = new FrmNhaCungCap();
                frm.MaNCC = getMa();
                frm.kt = 1;
                frm.ShowDialog();
                nodeNgonNgu_NodeClick(sender, e);
            }
        }

        private void btn_Xoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (kt == 1)//Chuc năng
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
      MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("ChucNang", "MaCN", getMa()) == true)
                            MessageBox.Show("Đã xóa");
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
                if (kt == 2)//Nhom ban đọc
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
     MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("NhomBanDoc", "MaNhom", getMa()) == true)
                        {
                            MessageBox.Show("Đã xóa");
                            codeNhomBanDoc_NodeClick(sender, e);
                        }
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
                if (kt == 3)//Nhan vien
                {
                    string[] arrayString = conn.getArray("MaCN", "QuyenHan", "MaNV", manv, 1);
                    int n = arrayString.Length;//Lấy số phần tử mảng
                    if (uti.TimKiem(arrayString, n, "ribbonPanel_NSD") == true)
                    {
                        if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
     MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            if (uti.deleteTable("NhanVien", "MaNV", getMa()) == true)
                            { 
                                MessageBox.Show("Đã xóa");
                                codeNhanVien_NodeClick(sender, e);
                            }
                            else
                                MessageBox.Show("Không thể xóa");
                        }
                    }
                    else
                        MessageBox.Show("Không có quyền sử dụng chức năng này", "Thông báo");
                }
                if (kt == 4)//Loai Sach
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
     MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("LoaiSach", "MaLoaiSach", getMa()) == true)
                        {
                            MessageBox.Show("Đã xóa");
                            nodeLoaiSach_NodeClick(sender, e);
                        }
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
                if (kt == 5)//Nha xuat ban
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
      MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("NhaXuatBan", "MaNXB", getMa()) == true)
                        {
                            MessageBox.Show("Đã xóa");
                            noceNhaXB_NodeClick(sender, e);
                        }
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
                if (kt == 6)//Tac gia
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
      MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("TacGia", "MaTacGia", getMa()) == true)
                        {
                            MessageBox.Show("Đã xóa");
                            nodeTacGia_NodeClick(sender, e);
                        }
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
                if (kt == 7)//Ngon ngu
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
     MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("NgonNgu", "MaNgonNgu", getMa()) == true)
                        {
                            MessageBox.Show("Đã xóa");
                            nodeNgonNgu_NodeClick(sender, e);
                        }
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
                if (kt == 8)//VI tri
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
     MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("ViTri", "MaViTri", getMa()) == true)
                        {
                            MessageBox.Show("Đã xóa");
                            nodeViTri_NodeClick(sender, e);
                        }
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
                if (kt == 9)//Nha cung cap
                {
                    if (MessageBox.Show("Bạn có muốn xóa không?", "Hỏi",
     MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (uti.deleteTable("NhaCungCap", "MaNCC", getMa()) == true)
                        {
                            MessageBox.Show("Đã xóa");
                            nodeNhaCungcap_NodeClick(sender, e);
                        }
                        else
                            MessageBox.Show("Không thể xóa");
                    }
                }
            }
            catch
            {
                MessageBox.Show("Dữ liệu đang tồn tại trong CSDL khác, không thể xóa", "Thông báo");
            }
        }

        private void btn_Thoat_Click(object sender, EventArgs e)
        {
             if (MessageBox.Show("Bạn có muốn thoát không?", "Hỏi",
      MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
             {
                 this.Close();
             }
        }

        private void dgv_DanhMuc_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            uti.dgv_GetSTT_RowHeader(sender,e,dgv_DanhMuc);
        }

    }
}
